package com.unknow.first.dapp.admin.account.mapper;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户提现记录
 */
@ApiModel(description = "用户提现记录")
@Data
@Accessors(chain = true)
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "t_address_withdraw")
public class AddressWithdraw {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "")
    private Long id;

    /**
     * 地址
     */
    @TableField(value = "address")
    @ApiModelProperty(value = "地址")
    private String address;

    /**
     * 用户名
     */
    @TableField(value = "username")
    @ApiModelProperty(value = "用户名")
    private String username;

    /**
     * 提现资金接收地址
     */
    @TableField(value = "to_address")
    @ApiModelProperty(value = "提现资金接收地址")
    private String toAddress;

    /**
     * 币种id
     */
    @TableField(value = "coin_id")
    @ApiModelProperty(value = "币种id")
    private Integer coinId;

    /**
     * 简称
     */
    @TableField(value = "coin_symbol")
    @ApiModelProperty(value = "简称")
    private String coinSymbol;

    /**
     * 金额
     */
    @TableField(value = "amount")
    @ApiModelProperty(value = "金额")
    private BigDecimal amount;

    /**
     * 手续费
     */
    @TableField(value = "fee")
    @ApiModelProperty(value = "手续费")
    private BigDecimal fee;

    /**
     * 实际到账金额
     */
    @TableField(value = "real_amount")
    @ApiModelProperty(value = "实际到账金额")
    private BigDecimal realAmount;

    /**
     * 签名数据json
     */
    @TableField(value = "sign_data")
    @ApiModelProperty(value = "签名数据json")
    private String signData;

    /**
     * 订单号
     */
    @TableField(value = "order_no")
    @ApiModelProperty(value = "订单号")
    private String orderNo;

    /**
     * 状态（10-待审核；20-审核通过；30-审核拒绝；40-交易成功）
     */
    @TableField(value = "`status`")
    @ApiModelProperty(value = "状态（10-待审核；20-审核通过；30-审核拒绝；40-交易成功）")
    private Integer status;

    /**
     * 关联事件表ID
     */
    @TableField(value = "logs_id")
    @ApiModelProperty(value = "关联事件表ID")
    private Long logsId;

    /**
     * 交易hash
     */
    @TableField(value = "transaction_hash")
    @ApiModelProperty(value = "交易hash")
    private String transactionHash;

    /**
     * 区块时间
     */
    @TableField(value = "block_timestamp")
    @ApiModelProperty(value = "区块时间")
    private Date blockTimestamp;

    /**
     * 备注
     */
    @TableField(value = "remark")
    @ApiModelProperty(value = "备注")
    private String remark;

    @TableField(value = "CREATED_BY")
    @ApiModelProperty(value = "")
    private String createdBy;

    @TableField(value = "CREATED_DATE")
    @ApiModelProperty(value = "")
    private Date createdDate;

    @TableField(value = "UPDATED_BY")
    @ApiModelProperty(value = "")
    private String updatedBy;

    @TableField(value = "UPDATED_DATE")
    @ApiModelProperty(value = "")
    private Date updatedDate;

    public static final String COL_ID = "id";

    public static final String COL_ADDRESS = "address";

    public static final String COL_USERNAME = "username";

    public static final String COL_TO_ADDRESS = "to_address";

    public static final String COL_COIN_ID = "coin_id";

    public static final String COL_COIN_SYMBOL = "coin_symbol";

    public static final String COL_AMOUNT = "amount";

    public static final String COL_FEE = "fee";

    public static final String COL_REAL_AMOUNT = "real_amount";

    public static final String COL_SIGN_DATA = "sign_data";

    public static final String COL_ORDER_NO = "order_no";

    public static final String COL_STATUS = "status";

    public static final String COL_LOGS_ID = "logs_id";

    public static final String COL_TRANSACTION_HASH = "transaction_hash";

    public static final String COL_BLOCK_TIMESTAMP = "block_timestamp";

    public static final String COL_REMARK = "remark";

    public static final String COL_CREATED_BY = "CREATED_BY";

    public static final String COL_CREATED_DATE = "CREATED_DATE";

    public static final String COL_UPDATED_BY = "UPDATED_BY";

    public static final String COL_UPDATED_DATE = "UPDATED_DATE";
}